//
// Created by sjjmw on 2/23/2022.
//

#pragma clang diagnostic push
#pragma ide diagnostic ignored "EndlessLoop"
#ifndef LEETCODE__17_H
#define LEETCODE__17_H

//todo
// 假设有k个人质和k个绑匪围成一圈。人质的编号从1到k，绑匪的编号从k+1到2k。
// 从编号1开始，每次从其中选出第m个人(隔m-1选出一人)出列。
// 希望求出m的最小值，使得最先出列的k个人都是绑匪，即都是编号从k+1到2k的人。
#include "iostream"
#include "vector"
#include "unordered_map"

bool valid(int num){
    return num/1000+num/10%10==(num/100%10)*(num%10);
}
int main() {

    int a;
    while (std::cin >> a) {
        int cnt=0,i=34;
        while(cnt<a&&i*i<10000){
            if(valid(i*i)){
               cnt++;
               if(cnt==a){
                   printf("%d\n",i*i);
               }
            }
            i++;
        }
    }
//    while(1){}
    return 0;
}

#endif //LEETCODE__17_H

#pragma clang diagnostic pop